package com.hc.wego.utils;

import java.util.Collection;
import java.util.Map;

/**
 *
 * @author hc
 * @date 2025-06-17 11:37
 */
public class CollectionUtil {

    /**
     * 判断List/Set是否为null或没有任何元素
     *
     * @param collection 集合
     * @return 是否为null或空集合
     */
    public static <E> boolean isEmpty(Collection<E> collection) {
        return collection == null || collection.isEmpty();
    }

    /**
     * 判断集合是否不为空
     * 此方法提供了一种快捷方式来判断集合中是否含有元素，而无需直接进行空检查或调用isEmpty方法
     *
     * @param <E> 集合中元素的类型
     * @param collection 待检查的集合
     * @return 如果集合不为空，则返回true；否则返回false
     */
    public static <E> boolean isNotEmpty(Collection<E> collection) {
        return !isEmpty(collection);
    }

    /**
     * 检查给定的Map对象是否为空
     *
     * @param map 要检查的Map对象
     * @return 如果Map对象为null或其大小为0，则返回true；否则返回false
     */
    public static <K, V> boolean isEmpty(Map<K, V> map) {
        // 检查Map对象是否为null或其大小是否为0
        return map == null || map.isEmpty();
    }

    /**
     * 判断给定的映射是否不为空
     * 此方法通过检查映射是否为空来间接判断映射是否有内容
     *
     * @param map 要检查的映射
     * @return 如果映射不为空，则返回true；否则返回false
     */
    public static <K, V> boolean isNotEmpty(Map<K, V> map) {
        return !isEmpty(map);
    }

}
